home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / ape-ad1a / cdxvblay.cls < prev    next >
Text File  |  1999-09-20  |  4KB  |  121 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "CDXVBLayer"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Public m_XOffset As Long
  15. Public m_YOffset As Long
  16.  
  17. Public m_PixelWidth As Long
  18. Public m_PixelHeight As Long
  19.  
  20. Public m_ScreenX As Long
  21. Public m_ScreenY As Long
  22.  
  23. Public m_lpDDS As New CDXVBSurface
  24. Private m_Debug As New CDXVBINI
  25. Private m_rcRect As RECT
  26.  
  27. Public Sub Create(FN As String, Screen As CDXVBScreen, ScreenX As Long, ScreenY As Long)
  28.       m_lpDDS.Create FN, Screen
  29.  
  30.       m_XOffset = 1
  31.       m_YOffset = 1
  32.       
  33.       m_ScreenX = ScreenX
  34.       m_ScreenY = ScreenY
  35.       
  36.       m_PixelWidth = CLng(m_lpDDS.m_PixelWidth)
  37.       m_PixelHeight = CLng(m_lpDDS.m_PixelHeight)
  38.       
  39.       m_Debug.Create "DEBUG INFO", App.Path & "\Layer.ini"
  40. End Sub
  41.  
  42. Public Sub Draw(Back As IDirectDrawSurface2)
  43.       With m_rcRect
  44.             .top = m_PixelHeight - m_YOffset
  45.             .left = m_PixelWidth - m_XOffset
  46.             .bottom = m_PixelHeight
  47.             .right = m_PixelWidth
  48.       End With
  49.       If m_rcRect.bottom = 0 Then GoTo No2
  50.       If m_rcRect.right = 0 Then GoTo No2
  51.       If Not m_rcRect.bottom > m_rcRect.top Then GoTo No2
  52.       If Not m_rcRect.right > m_rcRect.left Then GoTo No2
  53.       Back.BltFast m_ScreenX, m_ScreenY, m_lpDDS.m_lpDDS, m_rcRect, DDBLTFAST_WAIT
  54.       
  55. No2:
  56.       
  57.       With m_rcRect
  58.             .top = m_PixelHeight - m_YOffset
  59.             .left = 0
  60.             .bottom = m_PixelHeight
  61.             .right = m_PixelWidth - m_XOffset
  62.       End With
  63.       If m_rcRect.bottom = 0 Then GoTo No3
  64.       If m_rcRect.right = 0 Then GoTo No3
  65.       If Not m_rcRect.bottom > m_rcRect.top Then GoTo No3
  66.       If Not m_rcRect.right > m_rcRect.left Then GoTo No3
  67.       Back.BltFast m_ScreenX + m_XOffset, m_ScreenY, m_lpDDS.m_lpDDS, m_rcRect, DDBLTFAST_WAIT
  68.       
  69. No3:
  70.       
  71.       With m_rcRect
  72.             .top = 0
  73.             .left = m_PixelWidth - m_XOffset
  74.             .bottom = m_PixelHeight - m_YOffset
  75.             .right = m_PixelWidth
  76.       End With
  77.       If m_rcRect.bottom = 0 Then GoTo No4
  78.       If m_rcRect.right = 0 Then GoTo No4
  79.       If Not m_rcRect.bottom > m_rcRect.top Then GoTo No4
  80.       If Not m_rcRect.right > m_rcRect.left Then GoTo No4
  81.       Back.BltFast m_ScreenX, m_ScreenY + m_YOffset, m_lpDDS.m_lpDDS, m_rcRect, DDBLTFAST_WAIT
  82.       
  83. No4:
  84.       
  85.       With m_rcRect
  86.             .top = 0
  87.             .left = 0
  88.             .bottom = m_PixelHeight - m_YOffset
  89.             .right = m_PixelWidth - m_XOffset
  90.       End With
  91.       If m_rcRect.bottom = 0 Then Exit Sub
  92.       If m_rcRect.right = 0 Then Exit Sub
  93.       If Not m_rcRect.bottom > m_rcRect.top Then Exit Sub
  94.       If Not m_rcRect.right > m_rcRect.left Then Exit Sub
  95.       Back.BltFast m_ScreenX + m_XOffset, m_ScreenY + m_YOffset, m_lpDDS.m_lpDDS, m_rcRect, DDBLTFAST_WAIT
  96. End Sub
  97.  
  98. Public Sub ScrollDown(Amt As Long)
  99.       m_YOffset = m_YOffset - Amt
  100.       
  101.       If m_YOffset < 0 Then m_YOffset = m_PixelHeight + m_YOffset
  102. End Sub
  103.  
  104. Public Sub ScrollUp(Amt As Long)
  105.       m_YOffset = m_YOffset + Amt
  106.       
  107.       If m_YOffset > m_PixelHeight Then m_YOffset = m_YOffset - m_PixelHeight
  108. End Sub
  109.  
  110. Public Sub ScrollLeft(Amt As Integer)
  111.       m_XOffset = m_XOffset - Amt
  112.       
  113.       If m_XOffset < 0 Then m_XOffset = m_XOffset + m_PixelWidth
  114. End Sub
  115.  
  116. Public Sub ScrollRight(Amt As Integer)
  117.       m_XOffset = m_XOffset + Amt
  118.       
  119.       If m_XOffset > m_PixelWidth Then m_XOffset = m_XOffset - m_PixelWidth
  120. End Sub
  121.